﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenIDHostController.DataContract;
using System.ServiceModel;
namespace OpenIDHostController
{
    [ServiceContract]
   public interface IOpenIDService
   {
       #region User

        [OperationContract]
        IList<usersContract> GetUserList(string Service, string UserName);

        [OperationContract]
        usersContract GetUserByID(long ID, string Service, string UserName);

        [OperationContract]
        usersContract GetUserByName(string Name, string Service, string UserName);

        [OperationContract]
        usersContract GetUserByIndentityCard(string IndentityCard, string Service, string UserName);

        [OperationContract]
        usersContract GetUserByEmail(string Email, string Service, string UserName);

        [OperationContract]
        usersContract GetUserByUserName(string Username, string Service, string UserName);

        [OperationContract]
        usersContract GetUserByUserNameAndPassword(string Username, string password);

        [OperationContract]
        long SaveUser(out string error, string _object, string type, string service);
       // [OperationContract]
     //   long SaveUser(string _object, out string error, string type, string service);//type: Register new user or Update user

       #endregion

        #region View user

        [OperationContract]
        IList<vwusersContract> GetViewUserList();

         [OperationContract]
        IList<vwusersContract> GetViewUserListByUserID(long UserID);

        [OperationContract]
        vwusersContract GetViewUserByUserID(long UserID);

        [OperationContract]
        string GetViewUserByUserNameAndPassword(string UserName, string Password, string Service);

        [OperationContract]
        bool DeleteUser(long UserID);
        #endregion

        #region user group

        [OperationContract]
        long SaveUserGroup(long UserID, long GroupID);

       

        #endregion
   }
}
